"""列表推导式
常见的用法为，对序列或可迭代对象中的每个元素应用某种操作，
用生成的结果创建新的列表；
或用满足特定条件的元素创建子序列。
"""


"""这段代码创建（或覆盖）变量 x，
该变量在循环结束后仍然存在
造成了空间的浪费
通过列表推导式可以避免这种空间浪费"""
squares = []
for x in range(10):
    squares.append(x**2)

print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]


"""列表推导式"""
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 与列表推导式等价
squares = list(map(lambda x: x**2, range(10)))
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]